Some remote presentation systems execute applications on a centrally hosted server and send the graphical or audio output of those applications to remotely located client devices. For many applications, such as word processors for example, the consumption of server resources is relatively low. This results in a relatively light load on the server's CPU and light level of network traffic generated by the application. Such applications can therefore be hosted on a single server since they do not cause significant performance degradation by demanding a lot of network bandwidth or server processing capabilities, such as a high number of server's CPU cycles for example. However, applications which deal with large media files, such as video, animation or audio applications, consume significantly more resources and bandwidth resulting in delays and degradation of user experience.
Some systems provide remote access to graphical plugins between the server and the client by lowering the graphical output. Other remote presentation systems relocate the rendering of video from the server machine to the client machine. These systems, however, cannot be used to provide remote access to graphical plugins and applications that share a complex interface. Such systems also cannot be used to enable remote execution of plugins executing graphical content. Other systems provide remote access to applications that are made to be streamed or shared between machines, and not applications designed to be executed fully on a single machine.
A need exists to enable users of remote access systems to run resource demanding applications, not designed to be remotely accessed or controlled on centrally hosted servers without sacrificing user experience, quality of the graphical output or severely degrading server scalability.